#-------------------------------------------------
#
# Project created by QtCreator 2018-08-22T20:39:55
#
#-------------------------------------------------

QT += core gui \
    3dcore 3drender 3dinput 3dextras \
    quick quickwidgets \
        datavisualization \
        opengl


CONFIG += c++11

LIBS += -lpthread libwsock32 libws2_32 \
            -lOpengl32 -lglu32 -lglut


greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = creality3d
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

INCLUDEPATH += clipper Stb rapidjson curaengine

SOURCES += main.cpp \
    mainwindow.cpp \
    optiondialog.cpp \
    stlscene.cpp \
    clipper/clipper.cpp \
    curaengine/infill/ImageBasedDensityProvider.cpp \
    curaengine/infill/NoZigZagConnectorProcessor.cpp \
    curaengine/infill/SierpinskiFill.cpp \
    curaengine/infill/SierpinskiFillProvider.cpp \
    curaengine/infill/SpaghettiInfill.cpp \
    curaengine/infill/SpaghettiInfillPathGenerator.cpp \
    curaengine/infill/SubDivCube.cpp \
    curaengine/infill/ZigzagConnectorProcessor.cpp \
    curaengine/pathPlanning/Comb.cpp \
    curaengine/pathPlanning/GCodePath.cpp \
    curaengine/pathPlanning/LinePolygonsCrossings.cpp \
    curaengine/pathPlanning/NozzleTempInsert.cpp \
    curaengine/pathPlanning/TimeMaterialEstimates.cpp \
    curaengine/progress/Progress.cpp \
    curaengine/progress/ProgressStageEstimator.cpp \
    curaengine/settings/AdaptiveLayerHeights.cpp \
    curaengine/settings/PathConfigStorage.cpp \
    curaengine/settings/SettingConfig.cpp \
    curaengine/settings/SettingContainer.cpp \
    curaengine/settings/SettingRegistry.cpp \
    curaengine/settings/settings.cpp \
    curaengine/utils/AABB.cpp \
    curaengine/utils/AABB3D.cpp \
    curaengine/utils/Date.cpp \
    curaengine/utils/gettime.cpp \
    curaengine/utils/LinearAlg2D.cpp \
    curaengine/utils/ListPolyIt.cpp \
    curaengine/utils/logoutput.cpp \
    curaengine/utils/MinimumSpanningTree.cpp \
    curaengine/utils/Point3.cpp \
    curaengine/utils/polygon.cpp \
    curaengine/utils/PolygonProximityLinker.cpp \
    curaengine/utils/PolygonsPointIndex.cpp \
    curaengine/utils/polygonUtils.cpp \
    curaengine/utils/ProximityPointLink.cpp \
    curaengine/utils/socket.cpp \
    curaengine/utils/SVG.cpp \
    curaengine/bridge.cpp \
    curaengine/commandSocket.cpp \
    curaengine/ConicalOverhang.cpp \
    curaengine/ExtruderTrain.cpp \
    curaengine/FffGcodeWriter.cpp \
    curaengine/FffPolygonGenerator.cpp \
    curaengine/FffProcessor.cpp \
    curaengine/gcodeExport.cpp \
    curaengine/GCodePathConfig.cpp \
    curaengine/infill.cpp \
    curaengine/InsetOrderOptimizer.cpp \
    curaengine/layerPart.cpp \
    curaengine/LayerPlan.cpp \
    curaengine/LayerPlanBuffer.cpp \
    curaengine/MergeInfillLines.cpp \
    curaengine/mesh.cpp \
    curaengine/MeshGroup.cpp \
    curaengine/Mold.cpp \
    curaengine/multiVolumes.cpp \
    curaengine/pathOrderOptimizer.cpp \
    curaengine/Preheat.cpp \
    curaengine/PrimeTower.cpp \
    curaengine/raft.cpp \
    curaengine/skin.cpp \
    curaengine/SkirtBrim.cpp \
    curaengine/sliceDataStorage.cpp \
    curaengine/slicer.cpp \
    curaengine/support.cpp \
    curaengine/SupportInfillPart.cpp \
    curaengine/timeEstimate.cpp \
    curaengine/TopSurface.cpp \
    curaengine/TreeSupport.cpp \
    curaengine/wallOverlap.cpp \
    curaengine/WallsComputation.cpp \
    curaengine/Weaver.cpp \
    curaengine/Wireframe2gcode.cpp \
    Stb/stb_vorbis.c \
    generator.cpp \
    stlwidget.cpp

HEADERS += mainwindow.h \
    optiondialog.h \
    spdlog/details/async_logger_impl.h \
    spdlog/details/circular_q.h \
    spdlog/details/console_globals.h \
    spdlog/details/file_helper.h \
    spdlog/details/fmt_helper.h \
    spdlog/details/log_msg.h \
    spdlog/details/logger_impl.h \
    spdlog/details/mpmc_blocking_q.h \
    spdlog/details/null_mutex.h \
    spdlog/details/os.h \
    spdlog/details/pattern_formatter.h \
    spdlog/details/periodic_worker.h \
    spdlog/details/registry.h \
    spdlog/details/thread_pool.h \
    spdlog/fmt/bundled/colors.h \
    spdlog/fmt/bundled/core.h \
    spdlog/fmt/bundled/format-inl.h \
    spdlog/fmt/bundled/format.h \
    spdlog/fmt/bundled/locale.h \
    spdlog/fmt/bundled/ostream.h \
    spdlog/fmt/bundled/posix.h \
    spdlog/fmt/bundled/printf.h \
    spdlog/fmt/bundled/ranges.h \
    spdlog/fmt/bundled/time.h \
    spdlog/fmt/fmt.h \
    spdlog/fmt/ostr.h \
    spdlog/sinks/android_sink.h \
    spdlog/sinks/ansicolor_sink.h \
    spdlog/sinks/base_sink.h \
    spdlog/sinks/basic_file_sink.h \
    spdlog/sinks/daily_file_sink.h \
    spdlog/sinks/dist_sink.h \
    spdlog/sinks/msvc_sink.h \
    spdlog/sinks/null_sink.h \
    spdlog/sinks/ostream_sink.h \
    spdlog/sinks/rotating_file_sink.h \
    spdlog/sinks/sink.h \
    spdlog/sinks/stdout_color_sinks.h \
    spdlog/sinks/stdout_sinks.h \
    spdlog/sinks/syslog_sink.h \
    spdlog/sinks/wincolor_sink.h \
    spdlog/async.h \
    spdlog/async_logger.h \
    spdlog/common.h \
    spdlog/formatter.h \
    spdlog/logger.h \
    spdlog/spdlog.h \
    spdlog/tweakme.h \
    spdlog/version.h \
    stlscene.h \
    loggername.h \
    clipper/clipper.hpp \
    curaengine/infill/DensityProvider.h \
    curaengine/infill/ImageBasedDensityProvider.h \
    curaengine/infill/NoZigZagConnectorProcessor.h \
    curaengine/infill/SierpinskiFill.h \
    curaengine/infill/SierpinskiFillProvider.h \
    curaengine/infill/SpaghettiInfill.h \
    curaengine/infill/SpaghettiInfillPathGenerator.h \
    curaengine/infill/SubDivCube.h \
    curaengine/infill/UniformDensityProvider.h \
    curaengine/infill/ZigzagConnectorProcessor.h \
    curaengine/pathPlanning/Comb.h \
    curaengine/pathPlanning/CombPath.h \
    curaengine/pathPlanning/CombPaths.h \
    curaengine/pathPlanning/GCodePath.h \
    curaengine/pathPlanning/LinePolygonsCrossings.h \
    curaengine/pathPlanning/NozzleTempInsert.h \
    curaengine/pathPlanning/TimeMaterialEstimates.h \
    curaengine/progress/Progress.h \
    curaengine/progress/ProgressEstimator.h \
    curaengine/progress/ProgressEstimatorLinear.h \
    curaengine/progress/ProgressStageEstimator.h \
    curaengine/settings/AdaptiveLayerHeights.h \
    curaengine/settings/PathConfigStorage.h \
    curaengine/settings/SettingConfig.h \
    curaengine/settings/SettingContainer.h \
    curaengine/settings/SettingRegistry.h \
    curaengine/settings/settings.h \
    curaengine/settings/SettingsToGV.h \
    curaengine/utils/AABB.h \
    curaengine/utils/AABB3D.h \
    curaengine/utils/algorithm.h \
    curaengine/utils/Date.h \
    curaengine/utils/floatpoint.h \
    curaengine/utils/gettime.h \
    curaengine/utils/IntPoint.h \
    curaengine/utils/LazyInitialization.h \
    curaengine/utils/linearAlg2D.h \
    curaengine/utils/ListPolyIt.h \
    curaengine/utils/Lock.h \
    curaengine/utils/logoutput.h \
    curaengine/utils/macros.h \
    curaengine/utils/math.h \
    curaengine/utils/MinimumSpanningTree.h \
    curaengine/utils/NoCopy.h \
    curaengine/utils/optional.h \
    curaengine/utils/orderOptimizer.h \
    curaengine/utils/Point3.h \
    curaengine/utils/polygon.h \
    curaengine/utils/PolygonProximityLinker.h \
    curaengine/utils/PolygonsPointIndex.h \
    curaengine/utils/polygonUtils.h \
    curaengine/utils/ProximityPointLink.h \
    curaengine/utils/socket.h \
    curaengine/utils/SparseGrid.h \
    curaengine/utils/SparseLineGrid.h \
    curaengine/utils/SparsePointGrid.h \
    curaengine/utils/SparsePointGridInclusive.h \
    curaengine/utils/string.h \
    curaengine/utils/SVG.h \
    curaengine/utils/SymmetricPair.h \
    curaengine/utils/UnionFind.h \
    curaengine/bridge.h \
    curaengine/commandSocket.h \
    curaengine/ConicalOverhang.h \
    curaengine/ExtruderTrain.h \
    curaengine/FanSpeedLayerTime.h \
    curaengine/FffGcodeWriter.h \
    curaengine/FffPolygonGenerator.h \
    curaengine/FffProcessor.h \
    curaengine/FlowTempGraph.h \
    curaengine/gcodeExport.h \
    curaengine/GcodeLayerThreader.h \
    curaengine/GCodePathConfig.h \
    curaengine/infill.h \
    curaengine/InsetOrderOptimizer.h \
    curaengine/layerPart.h \
    curaengine/LayerPlan.h \
    curaengine/LayerPlanBuffer.h \
    curaengine/MergeInfillLines.h \
    curaengine/mesh.h \
    curaengine/MeshGroup.h \
    curaengine/Mold.h \
    curaengine/multiVolumes.h \
    curaengine/pathOrderOptimizer.h \
    curaengine/Preheat.h \
    curaengine/PrimeTower.h \
    curaengine/PrintFeature.h \
    curaengine/raft.h \
    curaengine/RetractionConfig.h \
    curaengine/skin.h \
    curaengine/SkirtBrim.h \
    curaengine/sliceDataStorage.h \
    curaengine/slicer.h \
    curaengine/SpaceFillType.h \
    curaengine/support.h \
    curaengine/SupportInfillPart.h \
    curaengine/timeEstimate.h \
    curaengine/TopSurface.h \
    curaengine/TreeSupport.h \
    curaengine/wallOverlap.h \
    curaengine/WallsComputation.h \
    curaengine/weaveDataStorage.h \
    curaengine/Weaver.h \
    curaengine/Wireframe2gcode.h \
    rapidjson/error/en.h \
    rapidjson/error/error.h \
    rapidjson/internal/biginteger.h \
    rapidjson/internal/diyfp.h \
    rapidjson/internal/dtoa.h \
    rapidjson/internal/ieee754.h \
    rapidjson/internal/itoa.h \
    rapidjson/internal/meta.h \
    rapidjson/internal/pow10.h \
    rapidjson/internal/regex.h \
    rapidjson/internal/stack.h \
    rapidjson/internal/strfunc.h \
    rapidjson/internal/strtod.h \
    rapidjson/internal/swap.h \
    rapidjson/msinttypes/inttypes.h \
    rapidjson/msinttypes/stdint.h \
    rapidjson/allocators.h \
    rapidjson/document.h \
    rapidjson/encodedstream.h \
    rapidjson/encodings.h \
    rapidjson/filereadstream.h \
    rapidjson/filewritestream.h \
    rapidjson/fwd.h \
    rapidjson/istreamwrapper.h \
    rapidjson/memorybuffer.h \
    rapidjson/memorystream.h \
    rapidjson/ostreamwrapper.h \
    rapidjson/pointer.h \
    rapidjson/prettywriter.h \
    rapidjson/rapidjson.h \
    rapidjson/reader.h \
    rapidjson/schema.h \
    rapidjson/stream.h \
    rapidjson/stringbuffer.h \
    rapidjson/writer.h \
    Stb/stb.h \
    Stb/stb_c_lexer.h \
    Stb/stb_connected_components.h \
    Stb/stb_divide.h \
    Stb/stb_dxt.h \
    Stb/stb_easy_font.h \
    Stb/stb_herringbone_wang_tile.h \
    Stb/stb_image.h \
    Stb/stb_image_resize.h \
    Stb/stb_image_write.h \
    Stb/stb_leakcheck.h \
    Stb/stb_perlin.h \
    Stb/stb_rect_pack.h \
    Stb/stb_sprintf.h \
    Stb/stb_textedit.h \
    Stb/stb_tilemap_editor.h \
    Stb/stb_truetype.h \
    Stb/stb_voxel_render.h \
    Stb/stretchy_buffer.h \
    generator.h \
    singlerun.h \
    fileutils.h \
    stlwidget.h

FORMS += mainwindow.ui \
    optiondialog.ui

RESOURCES += res.qrc \
    qml.qrc \
    qml.qrc

TRANSLATIONS = creality3d.ts

# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH = qml

# Additional import path used to resolve QML modules just for Qt Quick Designer
QML_DESIGNER_IMPORT_PATH = qml

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
